<!doctype html><html lang="en">
 <head>
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  <meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport">
  <title>AOM Input Event Types</title>
  <link href="https://www.w3.org/StyleSheets/TR/2016/W3C-UD" rel="stylesheet" type="text/css">
  <link href="https://wicg.github.io/aom/spec/input-events.html" rel="canonical">
<style>/* style-md-lists */

/* This is a weird hack for me not yet following the commonmark spec
   regarding paragraph and lists. */
[data-md] > :first-child {
    margin-top: 0;
}
[data-md] > :last-child {
    margin-bottom: 0;
}</style>
<style>/* style-selflinks */

.heading, .issue, .note, .example, li, dt {
    position: relative;
}
a.self-link {
    position: absolute;
    top: 0;
    left: calc(-1 * (3.5rem - 26px));
    width: calc(3.5rem - 26px);
    height: 2em;
    text-align: center;
    border: none;
    transition: opacity .2s;
    opacity: .5;
}
a.self-link:hover {
    opacity: 1;
}
.heading > a.self-link {
    font-size: 83%;
}
li > a.self-link {
    left: calc(-1 * (3.5rem - 26px) - 2em);
}
dfn > a.self-link {
    top: auto;
    left: auto;
    opacity: 0;
    width: 1.5em;
    height: 1.5em;
    background: gray;
    color: white;
    font-style: normal;
    transition: opacity .2s, background-color .2s, color .2s;
}
dfn:hover > a.self-link {
    opacity: 1;
}
dfn > a.self-link:hover {
    color: black;
}

a.self-link::before            { content: "¶"; }
.heading > a.self-link::before { content: "§"; }
dfn > a.self-link::before      { content: "#"; }</style>
<style>/* style-counters */

body {
    counter-reset: example figure issue;
}
.issue {
    counter-increment: issue;
}
.issue:not(.no-marker)::before {
    content: "Issue " counter(issue);
}

.example {
    counter-increment: example;
}
.example:not(.no-marker)::before {
    content: "Example " counter(example);
}
.invalid.example:not(.no-marker)::before,
.illegal.example:not(.no-marker)::before {
    content: "Invalid Example" counter(example);
}

figcaption {
    counter-increment: figure;
}
figcaption:not(.no-marker)::before {
    content: "Figure " counter(figure) " ";
}</style>
<style>/* style-autolinks */

.css.css, .property.property, .descriptor.descriptor {
    color: #005a9c;
    font-size: inherit;
    font-family: inherit;
}
.css::before, .property::before, .descriptor::before {
    content: "‘";
}
.css::after, .property::after, .descriptor::after {
    content: "’";
}
.property, .descriptor {
    /* Don't wrap property and descriptor names */
    white-space: nowrap;
}
.type { /* CSS value <type> */
    font-style: italic;
}
pre .property::before, pre .property::after {
    content: "";
}
[data-link-type="property"]::before,
[data-link-type="propdesc"]::before,
[data-link-type="descriptor"]::before,
[data-link-type="value"]::before,
[data-link-type="function"]::before,
[data-link-type="at-rule"]::before,
[data-link-type="selector"]::before,
[data-link-type="maybe"]::before {
    content: "‘";
}
[data-link-type="property"]::after,
[data-link-type="propdesc"]::after,
[data-link-type="descriptor"]::after,
[data-link-type="value"]::after,
[data-link-type="function"]::after,
[data-link-type="at-rule"]::after,
[data-link-type="selector"]::after,
[data-link-type="maybe"]::after {
    content: "’";
}

[data-link-type].production::before,
[data-link-type].production::after,
.prod [data-link-type]::before,
.prod [data-link-type]::after {
    content: "";
}

[data-link-type=element],
[data-link-type=element-attr] {
    font-family: Menlo, Consolas, "DejaVu Sans Mono", monospace;
    font-size: .9em;
}
[data-link-type=element]::before { content: "<" }
[data-link-type=element]::after  { content: ">" }

[data-link-type=biblio] {
    white-space: pre;
}</style>
<style>/* style-dfn-panel */

.dfn-panel {
    position: absolute;
    z-index: 35;
    height: auto;
    width: -webkit-fit-content;
    width: fit-content;
    max-width: 300px;
    max-height: 500px;
    overflow: auto;
    padding: 0.5em 0.75em;
    font: small Helvetica Neue, sans-serif, Droid Sans Fallback;
    background: #DDDDDD;
    color: black;
    border: outset 0.2em;
}
.dfn-panel:not(.on) { display: none; }
.dfn-panel * { margin: 0; padding: 0; text-indent: 0; }
.dfn-panel > b { display: block; }
.dfn-panel a { color: black; }
.dfn-panel a:not(:hover) { text-decoration: none !important; border-bottom: none !important; }
.dfn-panel > b + b { margin-top: 0.25em; }
.dfn-panel ul { padding: 0; }
.dfn-panel li { list-style: inside; }
.dfn-panel.activated {
    display: inline-block;
    position: fixed;
    left: .5em;
    bottom: 2em;
    margin: 0 auto;
    max-width: calc(100vw - 1.5em - .4em - .5em);
    max-height: 30vh;
}

.dfn-paneled { cursor: pointer; }
</style>
<style>/* style-syntax-highlighting */
pre.idl.highlight { color: #708090; }
.highlight:not(.idl) { background: hsl(24, 20%, 95%); }
code.highlight { padding: .1em; border-radius: .3em; }
pre.highlight, pre > code.highlight { display: block; padding: 1em; margin: .5em 0; overflow: auto; border-radius: 0; }
c-[a] { color: #990055 } /* Keyword.Declaration */
c-[b] { color: #990055 } /* Keyword.Type */
c-[c] { color: #708090 } /* Comment */
c-[d] { color: #708090 } /* Comment.Multiline */
c-[e] { color: #0077aa } /* Name.Attribute */
c-[f] { color: #669900 } /* Name.Tag */
c-[g] { color: #222222 } /* Name.Variable */
c-[k] { color: #990055 } /* Keyword */
c-[l] { color: #000000 } /* Literal */
c-[m] { color: #000000 } /* Literal.Number */
c-[n] { color: #0077aa } /* Name */
c-[o] { color: #999999 } /* Operator */
c-[p] { color: #999999 } /* Punctuation */
c-[s] { color: #a67f59 } /* Literal.String */
c-[t] { color: #a67f59 } /* Literal.String.Single */
c-[u] { color: #a67f59 } /* Literal.String.Double */
c-[cp] { color: #708090 } /* Comment.Preproc */
c-[c1] { color: #708090 } /* Comment.Single */
c-[cs] { color: #708090 } /* Comment.Special */
c-[kc] { color: #990055 } /* Keyword.Constant */
c-[kn] { color: #990055 } /* Keyword.Namespace */
c-[kp] { color: #990055 } /* Keyword.Pseudo */
c-[kr] { color: #990055 } /* Keyword.Reserved */
c-[ld] { color: #000000 } /* Literal.Date */
c-[nc] { color: #0077aa } /* Name.Class */
c-[no] { color: #0077aa } /* Name.Constant */
c-[nd] { color: #0077aa } /* Name.Decorator */
c-[ni] { color: #0077aa } /* Name.Entity */
c-[ne] { color: #0077aa } /* Name.Exception */
c-[nf] { color: #0077aa } /* Name.Function */
c-[nl] { color: #0077aa } /* Name.Label */
c-[nn] { color: #0077aa } /* Name.Namespace */
c-[py] { color: #0077aa } /* Name.Property */
c-[ow] { color: #999999 } /* Operator.Word */
c-[mb] { color: #000000 } /* Literal.Number.Bin */
c-[mf] { color: #000000 } /* Literal.Number.Float */
c-[mh] { color: #000000 } /* Literal.Number.Hex */
c-[mi] { color: #000000 } /* Literal.Number.Integer */
c-[mo] { color: #000000 } /* Literal.Number.Oct */
c-[sb] { color: #a67f59 } /* Literal.String.Backtick */
c-[sc] { color: #a67f59 } /* Literal.String.Char */
c-[sd] { color: #a67f59 } /* Literal.String.Doc */
c-[se] { color: #a67f59 } /* Literal.String.Escape */
c-[sh] { color: #a67f59 } /* Literal.String.Heredoc */
c-[si] { color: #a67f59 } /* Literal.String.Interpol */
c-[sx] { color: #a67f59 } /* Literal.String.Other */
c-[sr] { color: #a67f59 } /* Literal.String.Regex */
c-[ss] { color: #a67f59 } /* Literal.String.Symbol */
c-[vc] { color: #0077aa } /* Name.Variable.Class */
c-[vg] { color: #0077aa } /* Name.Variable.Global */
c-[vi] { color: #0077aa } /* Name.Variable.Instance */
c-[il] { color: #000000 } /* Literal.Number.Integer.Long */
</style>
 <body class="h-entry">
  <div class="head">
   <p data-fill-with="logo"><a class="logo" href="https://www.w3.org/"> <img alt="W3C" height="48" src="https://www.w3.org/StyleSheets/TR/2016/logos/W3C" width="72"> </a> </p>
   <h1>AOM Input Event Types</h1>
   <h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="content">Unofficial Proposal Draft, <time class="dt-updated" datetime="1970-01-01">1 January 1970</time></span></h2>
   <div data-fill-with="spec-metadata">
    <dl>
     <dt>This version:
     <dd><a class="u-url" href="https://wicg.github.io/aom/spec/input-events.html">https://wicg.github.io/aom/spec/input-events.html</a>
     <dt>Latest published version:
     <dd><a href="https://wicg.github.io/aom/spec/input-events.html">https://wicg.github.io/aom/spec/input-events.html</a>
     <dt class="editor">Editors:
     <dd class="editor p-author h-card vcard"><a class="p-name fn u-email email" href="mailto:aboxhall@google.com">Alice Boxhall</a> (<span class="p-org org">Google</span>)
     <dd class="editor p-author h-card vcard"><a class="p-name fn u-email email" href="mailto:garykac@google.com">Gary Kacmarcik</a> (<span class="p-org org">Google</span>)
    </dl>
   </div>
   <div data-fill-with="warning"></div>
   <p class="copyright" data-fill-with="copyright"><a href="https://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 1970 <a href="https://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a href="https://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="https://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>, <a href="httsp://www.keio.ac.jp/">Keio</a>, <a href="https://ev.buaa.edu.cn/">Beihang</a>). W3C <a href="https://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="https://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document" rel="license">permissive document license</a> rules apply. </p>
   <hr title="Separator for header">
  </div>
  <div class="p-summary" data-fill-with="abstract">
   <h2 class="no-num no-toc no-ref heading settled" id="abstract"><span class="content">Abstract</span></h2>
   <p>This specification defines additional <code class="idl"><a data-link-type="idl" href="#dom-inputevent-inputtype" id="ref-for-dom-inputevent-inputtype">inputType</a></code> values for the <code class="idl"><a data-link-type="idl" href="http://www.w3.org/TR/uievents/#event-type-beforeinput" id="ref-for-event-type-beforeinput">beforeinput</a></code> and <code class="idl"><a data-link-type="idl" href="http://www.w3.org/TR/uievents/#event-type-input" id="ref-for-event-type-input">input</a></code> events that are required for the Accessibility Object Model <a data-link-type="biblio" href="#biblio-aom">[AOM]</a>.
	This specification builds on the UI events spec [UI-EVENTS].</p>
  </div>
  <h2 class="no-num no-toc no-ref heading settled" id="status"><span class="content">Status of this document</span></h2>
  <div data-fill-with="status">
   <p></p>
   <p> <strong>Changes to this document may be tracked at <a href="https://github.com/wicg/aom">https://github.com/wicg/aom</a>.</strong> </p>
  </div>
  <div data-fill-with="at-risk"></div>
  <nav data-fill-with="table-of-contents" id="toc">
   <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
   <ol class="toc" role="directory">
    <li><a href="#secintro"><span class="secno">1</span> <span class="content">Introduction</span></a>
    <li>
     <a href="#Cases"><span class="secno">2</span> <span class="content">Use Cases</span></a>
     <ol class="toc">
      <li><a href="#use-case-1"><span class="secno">2.1</span> <span class="content">Implementing an ARIA slider</span></a>
     </ol>
    <li>
     <a href="#input-events"><span class="secno">3</span> <span class="content">Input Events</span></a>
     <ol class="toc">
      <li><a href="#input-event-interfaces"><span class="secno">3.1</span> <span class="content">Input event interfaces</span></a>
      <li>
       <a href="#aom-input-event-types"><span class="secno">3.2</span> <span class="content"><span>Input Event Types</span></span></a>
       <ol class="toc">
        <li><a href="#type-action-increment"><span class="secno">3.2.1</span> <span class="content"><span>actionIncrement</span></span></a>
        <li><a href="#type-action-decrement"><span class="secno">3.2.2</span> <span class="content"><span>actionDecrement</span></span></a>
        <li><a href="#type-action-dismiss"><span class="secno">3.2.3</span> <span class="content"><span>actionDismiss</span></span></a>
        <li><a href="#type-action-scrollpageup"><span class="secno">3.2.4</span> <span class="content"><span>actionScrollPageUp</span></span></a>
        <li><a href="#type-action-scrollpagedown"><span class="secno">3.2.5</span> <span class="content"><span>actionScrollPageDown</span></span></a>
       </ol>
     </ol>
    <li><a href="#security"><span class="secno">4</span> <span class="content">Security Considerations</span></a>
    <li><a href="#privacy"><span class="secno">5</span> <span class="content">Privacy Considerations</span></a>
    <li><a href="#acknowledge"><span class="secno">6</span> <span class="content">Acknowledgements</span></a>
    <li>
     <a href="#conformance"><span class="secno"></span> <span class="content">Conformance</span></a>
     <ol class="toc">
      <li><a href="#conventions"><span class="secno"></span> <span class="content">Document conventions</span></a>
      <li><a href="#conformant-algorithms"><span class="secno"></span> <span class="content">Conformant Algorithms</span></a>
     </ol>
    <li>
     <a href="#index"><span class="secno"></span> <span class="content">Index</span></a>
     <ol class="toc">
      <li><a href="#index-defined-here"><span class="secno"></span> <span class="content">Terms defined by this specification</span></a>
      <li><a href="#index-defined-elsewhere"><span class="secno"></span> <span class="content">Terms defined by reference</span></a>
     </ol>
    <li>
     <a href="#references"><span class="secno"></span> <span class="content">References</span></a>
     <ol class="toc">
      <li><a href="#normative"><span class="secno"></span> <span class="content">Normative References</span></a>
     </ol>
    <li><a href="#idl-index"><span class="secno"></span> <span class="content">IDL Index</span></a>
   </ol>
  </nav>
  <main>
   <h2 class="heading settled" data-level="1" id="secintro"><span class="secno">1. </span><span class="content">Introduction</span><a class="self-link" href="#secintro"></a></h2>
   <p><i>This section is non-normative.</i></p>
   <p>Input events will be triggered by certain user interactions,
        in certain contexts,
        as well as via assistive technology interactions.</p>
   <h2 class="heading settled" data-level="2" id="Cases"><span class="secno">2. </span><span class="content">Use Cases</span><a class="self-link" href="#Cases"></a></h2>
   <p><i>This section is non-normative.</i></p>
   <h3 class="heading settled" data-level="2.1" id="use-case-1"><span class="secno">2.1. </span><span class="content">Implementing an ARIA slider</span><a class="self-link" href="#use-case-1"></a></h3>
   <p>TODO: Use case</p>
   <h2 class="heading settled" data-level="3" id="input-events"><span class="secno">3. </span><span class="content">Input Events</span><a class="self-link" href="#input-events"></a></h2>
   <p>The <a data-link-type="biblio" href="#biblio-uievents">[UIEVENTS]</a> specification defines the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent">InputEvent</a></code> type which is used by the <code class="idl"><a data-link-type="idl" href="http://www.w3.org/TR/uievents/#event-type-beforeinput" id="ref-for-event-type-beforeinput①">beforeinput</a></code> and <code class="idl"><a data-link-type="idl" href="http://www.w3.org/TR/uievents/#event-type-input" id="ref-for-event-type-input①">input</a></code> events.</p>
   <h3 class="heading settled" data-level="3.1" id="input-event-interfaces"><span class="secno">3.1. </span><span class="content">Input event interfaces</span><a class="self-link" href="#input-event-interfaces"></a></h3>
   <p>The <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent①">InputEvent</a></code> interface extends the <code class="idl"><a data-link-type="idl" href="https://dom.spec.whatwg.org/#event" id="ref-for-event">Event</a></code> interface.</p>
   <div id="inputevent-idl">
<pre class="idl highlight def" data-highlight="webidl"><c- b>partial</c-> <c- b>interface</c-> <a class="idl-code" data-link-type="interface" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent②"><c- g>InputEvent</c-></a> : <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/uievents/#uievent" id="ref-for-uievent"><c- n>UIEvent</c-></a> {
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString"><c- b>DOMString</c-></a>? <dfn class="dfn-paneled idl-code" data-dfn-for="InputEvent" data-dfn-type="attribute" data-export data-readonly data-type="DOMString?" id="dom-inputevent-inputtype"><code><c- g>inputType</c-></code></dfn>;
};
</pre>
    <dl>
     <dt data-md><dfn data-dfn-for="InputEvent" data-dfn-type="dfn" data-noexport id="inputevent-inputtype">inputType<a class="self-link" href="#inputevent-inputtype"></a></dfn>
     <dd data-md>
      <p>A <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/dnd.html#datatransfer" id="ref-for-datatransfer">DataTransfer</a></code> object to hold data and meta data related to the event.</p>
    </dl>
    <p class="note" role="note"><span>Note:</span> The IDL for <code class="idl"><a data-link-type="idl" href="#dom-inputevent-inputtype" id="ref-for-dom-inputevent-inputtype①">inputType</a></code> should be moved into <a data-link-type="biblio" href="#biblio-uievents">[UIEVENTS]</a> so that
		it can be shared between this spec and the <a href="https://www.w3.org/TR/input-events-2/">Input Events Level 2</a> spec.</p>
   </div>
   <h3 class="heading settled" data-level="3.2" id="aom-input-event-types"><span class="secno">3.2. </span><span class="content"><dfn data-dfn-type="dfn" data-noexport id="input-event-types">Input Event Types<a class="self-link" href="#input-event-types"></a></dfn></span><a class="self-link" href="#aom-input-event-types"></a></h3>
   <h4 class="heading settled" data-level="3.2.1" id="type-action-increment"><span class="secno">3.2.1. </span><span class="content"><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="actionincrement">actionIncrement</dfn></span><a class="self-link" href="#type-action-increment"></a></h4>
   <p>An <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent③">InputEvent</a></code> event with <code class="idl"><a data-link-type="idl" href="#dom-inputevent-inputtype" id="ref-for-dom-inputevent-inputtype②">inputType</a></code> set to <a data-link-type="dfn" href="#actionincrement" id="ref-for-actionincrement">actionIncrement</a> fires in
			response to an input action that increments a control. For example, as a
			result of a <a data-link-type="dfn" href="http://www.w3.org/TR/uievents-code/#code-arrowright" id="ref-for-code-arrowright">ArrowRight</a> or <a data-link-type="dfn" href="http://www.w3.org/TR/uievents-code/#code-arrowup" id="ref-for-code-arrowup">ArrowUp</a> key press.</p>
   <p>This event type is valid for the following roles:</p>
   <ul>
    <li data-md>
     <p>"progressbar"</p>
    <li data-md>
     <p>"scrollbar"</p>
    <li data-md>
     <p>"slider"</p>
    <li data-md>
     <p>"spinbutton"</p>
   </ul>
   <h4 class="heading settled" data-level="3.2.2" id="type-action-decrement"><span class="secno">3.2.2. </span><span class="content"><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="actiondecrement">actionDecrement</dfn></span><a class="self-link" href="#type-action-decrement"></a></h4>
   <p>An <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent④">InputEvent</a></code> event with <code class="idl"><a data-link-type="idl" href="#dom-inputevent-inputtype" id="ref-for-dom-inputevent-inputtype③">inputType</a></code> set to <a data-link-type="dfn" href="#actiondecrement" id="ref-for-actiondecrement">actionDecrement</a> fires in
			response to an input action that increments a control. For example, as a
			result of a <a data-link-type="dfn" href="http://www.w3.org/TR/uievents-code/#code-arrowleft" id="ref-for-code-arrowleft">ArrowLeft</a> or <a data-link-type="dfn" href="http://www.w3.org/TR/uievents-code/#code-arrowdown" id="ref-for-code-arrowdown">ArrowDown</a> key press.</p>
   <p>This event type is valid for the following roles:</p>
   <ul>
    <li data-md>
     <p>"progressbar"</p>
    <li data-md>
     <p>"scrollbar"</p>
    <li data-md>
     <p>"slider"</p>
    <li data-md>
     <p>"spinbutton"</p>
   </ul>
   <h4 class="heading settled" data-level="3.2.3" id="type-action-dismiss"><span class="secno">3.2.3. </span><span class="content"><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="actiondismiss">actionDismiss</dfn></span><a class="self-link" href="#type-action-dismiss"></a></h4>
   <p>An <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent⑤">InputEvent</a></code> event with <code class="idl"><a data-link-type="idl" href="#dom-inputevent-inputtype" id="ref-for-dom-inputevent-inputtype④">inputType</a></code> set to <a data-link-type="dfn" href="#actiondismiss" id="ref-for-actiondismiss">actionDismiss</a> fires when
			a dialog or other dismissable ACTION element is closed.</p>
   <p>This event type is valid for the following roles:</p>
   <ul>
    <li data-md>
     <p>"menu"</p>
    <li data-md>
     <p>"dialog"</p>
    <li data-md>
     <p>"alertdialog"</p>
   </ul>
   <h4 class="heading settled" data-level="3.2.4" id="type-action-scrollpageup"><span class="secno">3.2.4. </span><span class="content"><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="actionscrollpageup">actionScrollPageUp</dfn></span><a class="self-link" href="#type-action-scrollpageup"></a></h4>
   <p>An <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent⑥">InputEvent</a></code> event with <code class="idl"><a data-link-type="idl" href="#dom-inputevent-inputtype" id="ref-for-dom-inputevent-inputtype⑤">inputType</a></code> set to <a data-link-type="dfn" href="#actionscrollpageup" id="ref-for-actionscrollpageup">actionScrollPageUp</a> fires
			when user requests the current content to scroll up (or right) by a "page",
			where a page of data is typically equal to one screen.</p>
   <p>This type differs from <a data-link-type="dfn" href="#actionincrement" id="ref-for-actionincrement①">actionIncrement</a> in that it applies only to scrollable
			content.</p>
   <p>This event type is intended for scrollable content, but is valid for all
			roles (since it can bubble up to the `body` element, which is scrollable).</p>
   <h4 class="heading settled" data-level="3.2.5" id="type-action-scrollpagedown"><span class="secno">3.2.5. </span><span class="content"><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="actionscrollpagedown">actionScrollPageDown</dfn></span><a class="self-link" href="#type-action-scrollpagedown"></a></h4>
   <p>An <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent⑦">InputEvent</a></code> event with <code class="idl"><a data-link-type="idl" href="#dom-inputevent-inputtype" id="ref-for-dom-inputevent-inputtype⑥">inputType</a></code> set to <a data-link-type="dfn" href="#actionscrollpagedown" id="ref-for-actionscrollpagedown">actionScrollPageDown</a> fires
			when user requests the current content to scroll down (or left) by a "page",
			where a page of data is typically equal to one screen.</p>
   <p>This type differs from <a data-link-type="dfn" href="#actiondecrement" id="ref-for-actiondecrement①">actionDecrement</a> in that it applies only to scrollable
			content.</p>
   <p>This event type is intended for scrollable content, but is valid for all
			roles (since it can bubble up to the `body` element, which is scrollable).</p>
   <h2 class="heading settled" data-level="4" id="security"><span class="secno">4. </span><span class="content">Security Considerations</span><a class="self-link" href="#security"></a></h2>
   <p>Not applicable. This specification simply adds new possible values for an
	existing <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent⑧">InputEvent</a></code> attribute.</p>
   <h2 class="heading settled" data-level="5" id="privacy"><span class="secno">5. </span><span class="content">Privacy Considerations</span><a class="self-link" href="#privacy"></a></h2>
   <p>Not applicable. This specification defines new <code class="idl"><a data-link-type="idl" href="#dom-inputevent-inputtype" id="ref-for-dom-inputevent-inputtype⑦">inputType</a></code> values that will be
	sent for all users, not just those with accessibility features enabled.</p>
   <h2 class="heading settled" data-level="6" id="acknowledge"><span class="secno">6. </span><span class="content">Acknowledgements</span><a class="self-link" href="#acknowledge"></a></h2>
   <p><em>This section is non-normative</em></p>
   <p>We would like to acknowledge the contributions made by the following:</p>
   <p>Dominic Mazzoni,
        Ian Pouncey,</p>
    James Craig,
        James Teh,
        Jeffrey Yasskin,
	and Léonie Watson. 
  </main>
  <div data-fill-with="conformance">
   <h2 class="no-ref no-num heading settled" id="conformance"><span class="content">Conformance</span><a class="self-link" href="#conformance"></a></h2>
   <h3 class="no-ref no-num heading settled" id="conventions"><span class="content">Document conventions</span><a class="self-link" href="#conventions"></a></h3>
   <p>Conformance requirements are expressed with a combination of
    descriptive assertions and RFC 2119 terminology. The key words “MUST”,
    “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
    “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this
    document are to be interpreted as described in RFC 2119.
    However, for readability, these words do not appear in all uppercase
    letters in this specification. </p>
   <p>All of the text of this specification is normative except sections
    explicitly marked as non-normative, examples, and notes. <a data-link-type="biblio" href="#biblio-rfc2119">[RFC2119]</a></p>
   <p>Examples in this specification are introduced with the words “for example”
    or are set apart from the normative text with <code>class="example"</code>,
    like this: </p>
   <div class="example" id="example-ae2b6bc0">
    <a class="self-link" href="#example-ae2b6bc0"></a> 
    <p>This is an example of an informative example.</p>
   </div>
   <p>Informative notes begin with the word “Note” and are set apart from the
    normative text with <code>class="note"</code>, like this: </p>
   <p class="note" role="note">Note, this is an informative note.</p>
   <h3 class="no-ref no-num heading settled" id="conformant-algorithms"><span class="content">Conformant Algorithms</span><a class="self-link" href="#conformant-algorithms"></a></h3>
   <p>Requirements phrased in the imperative as part of algorithms (such as
    "strip any leading space characters" or "return false and abort these
    steps") are to be interpreted with the meaning of the key word ("must",
    "should", "may", etc) used in introducing the algorithm.</p>
   <p>Conformance requirements phrased as algorithms or specific steps can be
    implemented in any manner, so long as the end result is equivalent. In
    particular, the algorithms defined in this specification are intended to
    be easy to understand and are not intended to be performant. Implementers
    are encouraged to optimize.</p>
  </div>
  <p id="back-to-top" role="navigation"><a href="#toc"><abbr title="Back to top">↑</abbr></a></p>
  . 
<script src="https://www.w3.org/scripts/TR/2016/fixup.js"></script>
  <h2 class="no-num no-ref heading settled" id="index"><span class="content">Index</span><a class="self-link" href="#index"></a></h2>
  <h3 class="no-num no-ref heading settled" id="index-defined-here"><span class="content">Terms defined by this specification</span><a class="self-link" href="#index-defined-here"></a></h3>
  <ul class="index">
   <li><a href="#actiondecrement">actionDecrement</a><span>, in §3.2.2</span>
   <li><a href="#actiondismiss">actionDismiss</a><span>, in §3.2.3</span>
   <li><a href="#actionincrement">actionIncrement</a><span>, in §3.2.1</span>
   <li><a href="#actionscrollpagedown">actionScrollPageDown</a><span>, in §3.2.5</span>
   <li><a href="#actionscrollpageup">actionScrollPageUp</a><span>, in §3.2.4</span>
   <li><a href="#input-event-types">Input Event Types</a><span>, in §3.2</span>
   <li>
    inputType
    <ul>
     <li><a href="#dom-inputevent-inputtype">attribute for InputEvent</a><span>, in §3.1</span>
     <li><a href="#inputevent-inputtype">dfn for InputEvent</a><span>, in §3.1</span>
    </ul>
  </ul>
  <aside class="dfn-panel" data-for="term-for-event">
   <a href="https://dom.spec.whatwg.org/#event">https://dom.spec.whatwg.org/#event</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event">3.1. Input event interfaces</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-datatransfer">
   <a href="https://html.spec.whatwg.org/multipage/dnd.html#datatransfer">https://html.spec.whatwg.org/multipage/dnd.html#datatransfer</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-datatransfer">3.1. Input event interfaces</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-inputevent">
   <a href="https://www.w3.org/TR/uievents/#inputevent">https://www.w3.org/TR/uievents/#inputevent</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-inputevent">3. Input Events</a>
    <li><a href="#ref-for-inputevent①">3.1. Input event interfaces</a> <a href="#ref-for-inputevent②">(2)</a>
    <li><a href="#ref-for-inputevent③">3.2.1. actionIncrement</a>
    <li><a href="#ref-for-inputevent④">3.2.2. actionDecrement</a>
    <li><a href="#ref-for-inputevent⑤">3.2.3. actionDismiss</a>
    <li><a href="#ref-for-inputevent⑥">3.2.4. actionScrollPageUp</a>
    <li><a href="#ref-for-inputevent⑦">3.2.5. actionScrollPageDown</a>
    <li><a href="#ref-for-inputevent⑧">4. Security Considerations</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-uievent">
   <a href="https://www.w3.org/TR/uievents/#uievent">https://www.w3.org/TR/uievents/#uievent</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-uievent">3.1. Input event interfaces</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-event-type-beforeinput">
   <a href="http://www.w3.org/TR/uievents/#event-type-beforeinput">http://www.w3.org/TR/uievents/#event-type-beforeinput</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-type-beforeinput①">3. Input Events</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-event-type-input">
   <a href="http://www.w3.org/TR/uievents/#event-type-input">http://www.w3.org/TR/uievents/#event-type-input</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-type-input①">3. Input Events</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-code-arrowdown">
   <a href="http://www.w3.org/TR/uievents-code/#code-arrowdown">http://www.w3.org/TR/uievents-code/#code-arrowdown</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-code-arrowdown">3.2.2. actionDecrement</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-code-arrowleft">
   <a href="http://www.w3.org/TR/uievents-code/#code-arrowleft">http://www.w3.org/TR/uievents-code/#code-arrowleft</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-code-arrowleft">3.2.2. actionDecrement</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-code-arrowright">
   <a href="http://www.w3.org/TR/uievents-code/#code-arrowright">http://www.w3.org/TR/uievents-code/#code-arrowright</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-code-arrowright">3.2.1. actionIncrement</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-code-arrowup">
   <a href="http://www.w3.org/TR/uievents-code/#code-arrowup">http://www.w3.org/TR/uievents-code/#code-arrowup</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-code-arrowup">3.2.1. actionIncrement</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-DOMString">
   <a href="https://heycam.github.io/webidl/#idl-DOMString">https://heycam.github.io/webidl/#idl-DOMString</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-DOMString">3.1. Input event interfaces</a>
   </ul>
  </aside>
  <h3 class="no-num no-ref heading settled" id="index-defined-elsewhere"><span class="content">Terms defined by reference</span><a class="self-link" href="#index-defined-elsewhere"></a></h3>
  <ul class="index">
   <li>
    <a data-link-type="biblio">[DOM]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-event" style="color:initial">Event</span>
    </ul>
   <li>
    <a data-link-type="biblio">[HTML]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-datatransfer" style="color:initial">DataTransfer</span>
    </ul>
   <li>
    <a data-link-type="biblio">[UIEVENTS]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-inputevent" style="color:initial">InputEvent</span>
     <li><span class="dfn-paneled" id="term-for-uievent" style="color:initial">UIEvent</span>
     <li><span class="dfn-paneled" id="term-for-event-type-beforeinput" style="color:initial">beforeinput</span>
     <li><span class="dfn-paneled" id="term-for-event-type-input" style="color:initial">input</span>
    </ul>
   <li>
    <a data-link-type="biblio">[uievents-code]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-code-arrowdown" style="color:initial">arrowdown</span>
     <li><span class="dfn-paneled" id="term-for-code-arrowleft" style="color:initial">arrowleft</span>
     <li><span class="dfn-paneled" id="term-for-code-arrowright" style="color:initial">arrowright</span>
     <li><span class="dfn-paneled" id="term-for-code-arrowup" style="color:initial">arrowup</span>
    </ul>
   <li>
    <a data-link-type="biblio">[WebIDL]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-idl-DOMString" style="color:initial">DOMString</span>
    </ul>
  </ul>
  <h2 class="no-num no-ref heading settled" id="references"><span class="content">References</span><a class="self-link" href="#references"></a></h2>
  <h3 class="no-num no-ref heading settled" id="normative"><span class="content">Normative References</span><a class="self-link" href="#normative"></a></h3>
  <dl>
   <dt id="biblio-aom">[AOM]
   <dd>A. Boxhall; et al. <a href="https://wicg.github.io/aom/spec/">Accessibility Object Model</a>. URL: <a href="https://wicg.github.io/aom/spec/">https://wicg.github.io/aom/spec/</a>
   <dt id="biblio-dom">[DOM]
   <dd>Anne van Kesteren. <a href="https://dom.spec.whatwg.org/">DOM Standard</a>. Living Standard. URL: <a href="https://dom.spec.whatwg.org/">https://dom.spec.whatwg.org/</a>
   <dt id="biblio-html">[HTML]
   <dd>Anne van Kesteren; et al. <a href="https://html.spec.whatwg.org/multipage/">HTML Standard</a>. Living Standard. URL: <a href="https://html.spec.whatwg.org/multipage/">https://html.spec.whatwg.org/multipage/</a>
   <dt id="biblio-rfc2119">[RFC2119]
   <dd>S. Bradner. <a href="https://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>. March 1997. Best Current Practice. URL: <a href="https://tools.ietf.org/html/rfc2119">https://tools.ietf.org/html/rfc2119</a>
   <dt id="biblio-uievents">[UIEVENTS]
   <dd>Gary Kacmarcik; Travis Leithead; Doug Schepers. <a href="https://www.w3.org/TR/uievents/">UI Events</a>. 30 May 2019. WD. URL: <a href="https://www.w3.org/TR/uievents/">https://www.w3.org/TR/uievents/</a>
   <dt id="biblio-uievents-code">[UIEVENTS-CODE]
   <dd>Gary Kacmarcik; Travis Leithead. <a href="https://www.w3.org/TR/uievents-code/">UI Events KeyboardEvent code Values</a>. 1 June 2017. CR. URL: <a href="https://www.w3.org/TR/uievents-code/">https://www.w3.org/TR/uievents-code/</a>
   <dt id="biblio-webidl">[WebIDL]
   <dd>Boris Zbarsky. <a href="https://heycam.github.io/webidl/">Web IDL</a>. 15 December 2016. ED. URL: <a href="https://heycam.github.io/webidl/">https://heycam.github.io/webidl/</a>
  </dl>
  <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">IDL Index</span><a class="self-link" href="#idl-index"></a></h2>
<pre class="idl highlight def"><c- b>partial</c-> <c- b>interface</c-> <a class="idl-code" data-link-type="interface" href="https://www.w3.org/TR/uievents/#inputevent" id="ref-for-inputevent②①"><c- g>InputEvent</c-></a> : <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/uievents/#uievent" id="ref-for-uievent①"><c- n>UIEvent</c-></a> {
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString①"><c- b>DOMString</c-></a>? <a data-readonly data-type="DOMString?" href="#dom-inputevent-inputtype"><code><c- g>inputType</c-></code></a>;
};

</pre>
  <aside class="dfn-panel" data-for="dom-inputevent-inputtype">
   <b><a href="#dom-inputevent-inputtype">#dom-inputevent-inputtype</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-inputevent-inputtype①">3.1. Input event interfaces</a>
    <li><a href="#ref-for-dom-inputevent-inputtype②">3.2.1. actionIncrement</a>
    <li><a href="#ref-for-dom-inputevent-inputtype③">3.2.2. actionDecrement</a>
    <li><a href="#ref-for-dom-inputevent-inputtype④">3.2.3. actionDismiss</a>
    <li><a href="#ref-for-dom-inputevent-inputtype⑤">3.2.4. actionScrollPageUp</a>
    <li><a href="#ref-for-dom-inputevent-inputtype⑥">3.2.5. actionScrollPageDown</a>
    <li><a href="#ref-for-dom-inputevent-inputtype⑦">5. Privacy Considerations</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="actionincrement">
   <b><a href="#actionincrement">#actionincrement</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-actionincrement">3.2.1. actionIncrement</a>
    <li><a href="#ref-for-actionincrement①">3.2.4. actionScrollPageUp</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="actiondecrement">
   <b><a href="#actiondecrement">#actiondecrement</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-actiondecrement">3.2.2. actionDecrement</a>
    <li><a href="#ref-for-actiondecrement①">3.2.5. actionScrollPageDown</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="actiondismiss">
   <b><a href="#actiondismiss">#actiondismiss</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-actiondismiss">3.2.3. actionDismiss</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="actionscrollpageup">
   <b><a href="#actionscrollpageup">#actionscrollpageup</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-actionscrollpageup">3.2.4. actionScrollPageUp</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="actionscrollpagedown">
   <b><a href="#actionscrollpagedown">#actionscrollpagedown</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-actionscrollpagedown">3.2.5. actionScrollPageDown</a>
   </ul>
  </aside>
<script>/* script-dfn-panel */

document.body.addEventListener("click", function(e) {
    var queryAll = function(sel) { return [].slice.call(document.querySelectorAll(sel)); }
    // Find the dfn element or panel, if any, that was clicked on.
    var el = e.target;
    var target;
    var hitALink = false;
    while(el.parentElement) {
        if(el.tagName == "A") {
            // Clicking on a link in a <dfn> shouldn't summon the panel
            hitALink = true;
        }
        if(el.classList.contains("dfn-paneled")) {
            target = "dfn";
            break;
        }
        if(el.classList.contains("dfn-panel")) {
            target = "dfn-panel";
            break;
        }
        el = el.parentElement;
    }
    if(target != "dfn-panel") {
        // Turn off any currently "on" or "activated" panels.
        queryAll(".dfn-panel.on, .dfn-panel.activated").forEach(function(el){
            el.classList.remove("on");
            el.classList.remove("activated");
        });
    }
    if(target == "dfn" && !hitALink) {
        // open the panel
        var dfnPanel = document.querySelector(".dfn-panel[data-for='" + el.id + "']");
        if(dfnPanel) {
            dfnPanel.classList.add("on");
            var rect = el.getBoundingClientRect();
            dfnPanel.style.left = window.scrollX + rect.right + 5 + "px";
            dfnPanel.style.top = window.scrollY + rect.top + "px";
            var panelRect = dfnPanel.getBoundingClientRect();
            var panelWidth = panelRect.right - panelRect.left;
            if(panelRect.right > document.body.scrollWidth && (rect.left - (panelWidth + 5)) > 0) {
                // Reposition, because the panel is overflowing
                dfnPanel.style.left = window.scrollX + rect.left - (panelWidth + 5) + "px";
            }
        } else {
            console.log("Couldn't find .dfn-panel[data-for='" + el.id + "']");
        }
    } else if(target == "dfn-panel") {
        // Switch it to "activated" state, which pins it.
        el.classList.add("activated");
        el.style.left = null;
        el.style.top = null;
    }

});
</script>